Sport movement analyzer and training device

ABSTRACT

A sport movement analyzer and training device and method, in real time, detect, analyze, correct and re-create sport movements of a user. An analyzer is secured to a user&#39;s wrist engaged in sport movements. A sensing unit in the analyzer provides signals representative of the movement of the wrist at various swing positions along a swing path during a sport movement. A processor in the analyzer processes the signals to measure various parameters descriptive of a sport performance of the user at the swing positions along the swing path. Stored programs in the analyzer service the processor in processing the signals representative of the sport performance for display to the user. A history of past sport performances by the user is stored for comparison purposes with current sport performances.

BACKGROUND OF INVENTION

1. Field of Invention

The present invention relates to sport movement analysis and training. More particularly, the invention relates to a sport movement analyzer and training device for detecting, analyzing, correcting, training and re-creating sport movements involving swinging a club, racket, bat, etc.

In events where an athlete moves fast and high accuracy of performance is necessary, it is of interest to be able to measure how much time it takes for an athlete to perform the phases of a movement, e.g. swing a golf club, tennis racket, baseball bat, etc. . . . The athletes practice so that they can accurately repeat the movements again and again. Consistent timing of performance is a corner stone for the repeatability. Muscle memory is the key point in several sports. When a user has done several repetitions of desired action, muscles start to remember this action and after that it is much easier to repeat in different situations. Once the correct and effective sports performance has been accomplished, it will be lost sooner or later as the muscle sense can not maintain nor remember the same movement for long time due to the fact that the freshly learned performance feels greatly different than one that has existed for longer time and the body and senses have been accustomed to it. Through training, conditioning, and improved technique, an athlete's variation in timing of the swing should be reduced. Measures of key event times during sport performances allow the coach to evaluate an individual's performance and to compare performances over the training and competition seasons.

In the field of sports performance analysis there is a lack of exact measurement tools. The video analysis is the most widespread technology for teaching sports techniques. Video analysis has always a need for human interpretation of the movements. Swing sensor technology allows exact analysis of the movements without human interpretation or third person, but the methods and technologies are lacking for utilizing the sensor data. Moreover, trainers or trainees eyes get accustomed to the slowly changing movements and the ability to detect flaws lessens in time.

The big challenge in sports is to find a correct and effective performance once. The performance can be a movement, orientation, body position, acceleration etc. Challenge is even greater in trying to repeat that correct performance repeatedly. These challenges can be overcome through constant repetitions under surveillance of a trainer 100 and/or with the usage of video where the similarity of the repetitions can be verified. This approach is vulnerable in a multitude of weak points. For example, the trainers or the trainee's eye is not flawless in detecting the changes in the performances. Use of video is limited to one viewing angle, very slow feedback (takes minutes to analyze movement), low position accuracy (only what can be extracted from video pictures), and very low picture recording frequency (30 Hz) only in normal PAL standard digital video). In addition, usage i.e. storing, organizing and analyzing in varying sports environments and is not supported by existing technology etc. However, there exist many products that guide athletes to correct performance tempo, for instance Swing-Tempo (http://www.swing-tempo.com).

A problem in sport movement analysis and training involves storing sensor parameters at certain (static) points in the movement without interfering with (touching) a measuring device that is attached to the trainer. The storing could be done remotely by using an external device, e.g. IrDA, remote control in a phone, camera, or as a separate remote control unit; Radio remote controller; Bluetooth remote control in a phone, camera, or as a separate remote control unit, and Voice commands, for example voice recognition system in user's sensor device. However, the external device adds another unit to implement the storing of the parameters.

What is needed is in the field of sports involving swinging a golf club, tennis racket, baseball bat, etc is a sport movement analyzer and training device which enables a user to detect, measure, and store swing positions or events in a sport movement in terms of parameters, e.g. time, velocity, acceleration, etc and recreate the sport performances through feedback for comparisons between target performances and current performances, where the user receives sensory signals indicative of differences between the target performance and the current performance.

Prior art related to sport movement analysis and training includes:

1. U.S. Pat. No. 5,694,340 issued Dec. 2, 1997 discloses a method of training and simulating physical skills using a digital swing analyzing device that measures the necessary and sufficient information to describe uniquely a rigid body swing. The device, comprising a programmable digital signal processor and a universal accelerometer, measures the acceleration and calculates the linear velocity, the angular velocity, the orientation, and the position of a moving object, and stores and plays back the swing using audiovisual means and compares it with other pre-recorded swings. The student can choose a model and try to imitate the model with the help of audiovisual means and biofeedback means. The device is portable. It can also be connected to a computer where the swing can be further analyzed by comparing it with a database comprising many other characteristic swings. If a projectile is involved, such as in a golf swing, the trajectory of the projectile is calculated.

2. USPA 2002/0049507, published Apr. 25, 2002 discloses a sport server includes a sport database for storing sport data. The sport server communicates with a variety of input devices for receiving the sport data. The sport server determines the type of input device and then communicates with the input device using appropriate display and communication parameters. The sport server then outputs the sport data to various output devices using appropriate parameters for each output device.

3. U.S. Pat. No. 6,778,866, issued Aug. 17, 2004 discloses method and apparatus for teaching a person how to perform a specific body swing in a consistent manner is based on electronically measuring one or more parameters of an actual body swing, comparing the one or more measured parameters with corresponding parameters of a target body swing, and providing a sensible feedback to the user based on a degree of correspondence between the one or more measured parameters and the corresponding target parameters. In a particular embodiment, the feedback is audible. More specifically the feedback is a musical tune that has a particular characteristic (such as rhythm) that is particularly suited to a particular body swing (such as a golf swing). The feedback may be in the form of electronically causing the musical tune to go off-key in proportion to a discrepancy between the actual body swing and the target body swing. In another embodiment, the feedback may be in the form of causing the musical signal to vary in perceivable clarity in proportion to a discrepancy between the actual body swing and the target body swing. The use of a stylized musical tune is also helpful because it is easily remembered, thereby aiding a user attempting a certain body swing without using the apparatus of the present invention.

4. USPA 2005/0054457, published Mar. 10, 2005 discloses a sport learning system directed to improving an individual's swing by monitoring a club, bat or racket during a swing. During the course of a swing, the system alerts the individual when the club position varies outside of a predetermined range. The system includes a device inserted into the distal end of a shaft of the club. A second device is attached to a personal computer to provide wireless data transmission with the device mounted in the club. A personal computer application enables swing data analysis and display. The inserted device employs a microprocessor, accelerometers, gyroscopes, memory and a system of buffering and filtering to provide real-time feedback during the swing. It is an additional feature of the inserted device to capture and store data required to reconstruct, display, and analyze swings and to share the data with other applications to facilitate remote instruction.

None of the cited art discloses a sport analyzer and training device that in real time (i) detects, measures, and stores swing positions or events in terms of parameters of a sport movement, e.g. a swing involving a bat, racket, club, etc.; (ii) provide real-time feedback of a performances by swing position or event along a swing path to a user via a display, (iii) re-create current performance for comparison with past performances stored in a database, (iv) provide audio commands to the analyzer for starting and stopping a performance along a swing path, and (v)) provide sensory signals to the user indicative of differences between a current performance and a past performance.

SUMMARY OF INVENTION

A sport performance analyzer and training device and method, in real time, detects, measures, analyzes, corrects and re-creates sport performances of a user involving swinging a club, racket, bat, etc. for practice, training and teaching relative to a target performance to achieve improved sport movement performance. A wearable analyzer secured to a user's wrist includes sensors for detecting sport movements of the user in terms of various parameters at various swing points or events along the swing path of a club, racket or bat. Signals representative of the movement are generated by the sensors for measurement of the various parameters associated with the swing. A memory in the analyzer services a processor and includes (i) stored programs for analyzing and measuring the sport movement by swing positions or events in terms of the various parameters and (ii) a history of past sport movements as target performances. A display responsive to the analysis displays a sport movement for comparison with past target performances stored in the history. A keyboard in the analyzer enables a user to select performances, i.e. swinging, putting and short game for analysis and display. A microphone enables the user to give audio commands to the analyzer in regard to starting and stopping a performance. The analyzer includes a transducer to provide feedback that is based on sensor signals to the user. Feedback can result when a practice performance departs from a target performance. A transceiver in the analyzer transmits the signals representative of the detected sport movement to a server. A memory coupled to the server stores the signals representative of each movement in a database as a history for subsequent downloading and display to the analyzer upon user request.

An aspect of the disclosed subject mater is a timing generator in the analyzer providing timing signals for alignment with swing positions of a movement for measurement purposes.

Another aspect is an automatic recording means for recording signals representative of a parameter in a swing or event in a sport movement.

Another aspect is a voice recognition system included in the analyzer responsive to an audio signal for activating the automatic recording means.

Another aspect is a user interface for downloading and displaying past sport movements from the history as a training goal for the user.

Another aspect is a display for indicating differences between a present movement in a performance and like movements stored in the history.

Another aspect is measuring performance parameters including, but not limited to, acceleration, angular velocity, swing angle, tempo, timing and rotation.

Another aspect are sensors including, but not limited to, inertial, magnetic, optical, angular rate, angular acceleration, mechanical switches, and potentiometers.

Another aspect is swing detection and measuring process for establishing swing positions and events to be detected along a swing path for measurement and analysis.

DESCRIPTION OF DRAWINGS

The invention will be further understood from the following detailed description of a preferred embodiment, taken in conjunction with appended drawings, in which:

FIG. 1 is a representation of a sport movement analyzer and training device secured to a user for monitoring the user performing a sport movement with a club along a swing path at various swing positions and coupled to a server for storing and downloading user performance data for comparison purposes, and incorporating the principles of the present invention;

FIG. 1A is a representation of the sport movement analyzer for securing to the wrist of a user;

FIG. 1B is a representation of a top view of the analyzer of FIG. 1;

FIG. 1C is a representation of internal devices and circuitry in the analyzer of FIG. 1A for detecting swing positions and events along the swing path of the club;

FIG. 1D is a representation of stored programs used in the operation of the analyzer of FIG. 1;

FIG. 2A shows rotation of a sensor box in the analyzer of FIG. 1;

FIG. 2B shows sensor data from the sensor box of FIG. 2A;

FIG. 2C shows how the sensor co-ordinate system of FIG. 1C as oriented on the user's wrist in FIG. 1;

FIG. 3 is a representation of functional units in the analyzer of FIG. 1 and FIG. 1C for movement detection and analysis along the swing path;

FIG. 4A is a representation of a swing detection block diagram for the analyzer of FIG. 1;

FIG. 4B is a graphical representation of detecting a down swing of the user using threshold values with angular velocities along the y axis versus time along the x axis;

FIG. 4C is a graphical representation of detecting address position measuring direction of gravity at start of swing with distance in inches along the y axis and time in seconds along the x axis.

FIG. 4D is a graphical representation of determining the angular velocity threshold in detecting the address position measuring gravity with angular velocity along the y axis and time along the x axis

FIG. 5A is a front view of a user's swing in calculating the user's swing width;

FIG. 5B is a down the line view of a user's swing in calculating the user's swing width;

FIG. 6 is a flow diagram describing the operation of the sport analyzer and training device of FIG. 1 in setting the swing positions or events along the swing path for detection and measurement;

FIG. 7A is a pictorial representation of different swing positions or events along the swing path of the user viewed from the position of the user as determined by the analyzer of FIG. 1;

FIG. 7B is a pictorial representation of different swing positions or events along the swing path of the user viewed from a first position of a third party as determined by the analyzer of FIG. 1;

FIG. 7C is a pictorial representation of different swing positions or events along the swing path of the user viewed from a second position of a third party as determined by the analyzer,

FIG. 7D is a pictorial representation of a user's swing tempo and speed, as determined by the swing detection algorithm;

FIG. 8 is a representation of a process for identifying a swing position or event in a tennis movement for practice and determining a user's performance of the swing or event using the analyzer of FIG. 1.

DESCRIPTION OF PREFERRED EMBODIMENT

FIG. 1 discloses a sport movement analyzer and trainer 100 for detecting, analyzing, correcting, training and recreating sport movements of a user 102 in real time. The device is applicable to swing movements involving a club, bracket, bat and the like. In addition, since the device is mounted on athlete it is applicable to other sports movements like punching, kicking, bowling, throwing/kicking ball/javelin/discus, etc. As shown, the user is swinging a golf club 104. The movement of the golf club is represented by a swing path 106 having a backswing 108 and a downswing 110 with swing positions along the path for monitoring and measuring of the club at the different positions. The swing positions in the backswing include an address/impact point 112; a one-quarter back swing point 114, a one-half back swing point 116 and a top point 118 of the swing path. After a pause at the top point, the downswing follows the back swing passing through the swing positions 116, 114, now representing one-quarter and one-half downswing points, respectively and finishing at the impact point 112. An upswing or follow through 120 continues beyond the point 112 and completes the swing path at an end point 122 near the top point. A wearable analyzer 124 is secured to the wrist of the user, whether a right-hand or a left hand golfer, and in real time detects, measures and calculates various parameters of the club at the different swing positions or events occurring along the swing path. It should be understood the analyzer may be secured to the forearm and other positions on the arm besides the wrist.

The analyzer shown in FIG. 1A is contained in a watch-like package 126. The analyzer includes straps 128 and a clasp or a Velcro material 130 for joining the straps together in securing the analyzer to the user's wrist. FIG. 1B shows a top view of the analyzer as containing a cover member 132 including a display area 134 for visual communication with the user; a keyboard 136 for inputting data and instructions to the analyzer and a microphone 138 enabling the user to provide oral instructions to the analyzer. FIG. 1C shows the working units within the package 126 for carrying out the functions of the analyzer in detecting, analyzing, correcting, training and recreating sport movements of the user 102. A bottom member 140 is secured to the cover member 132 and completes the package 126. The bottom member includes a micro control unit or processor 142 for controlling and managing the analyzer according to stored programs to be described hereinafter in conjunction with a description of FIG. 1D. The processor 142 is connected to a bus 144 serving a ROM 146 containing the stored programs for operating the analyzer; a RAM 148 services the processor operations, a voice recognition unit 150 supports oral communications by the user to the analyzer, and a timing generator 152 provides timing signals for measurement purposes in determining the parameter values at the various swing positions of the backswing and downswing as the club travels along the swing path. A sensor box 154 is coupled to the bus and includes devices sensing the movement of the club. The sensors may include different inertial sensors (like 3D accelerometers, 3D gyros, 3D angular accelerometers), magnetic, electromagnetic, and optical devices/sensors commercially available. The sensor may also include mechanical switches and potentiometers. In one embodiment and for purposes of description only, the sensing devices measure linear accelerations, angular velocities and/or angular accelerations as will be further described hereinafter. A power supply 153 provides the energy for the operation of the analyzer.

The processor 142 is also coupled to an input/output device 156 serving the display 134 and a transducer 158 responsive to the processor. The transducer provides the user with sounds or vibrations when a user's performance along the swing path does not match a target performance stored in the ROM or elsewhere. The I/O 156 is also coupled to a transceiver 160 for transmitting sensor signals and data to a server 164, either directly or via an Access Point 166 coupled to a network 168 serving the server, as shown in FIG. 1. The server is coupled to a storage device 170 including a database (not shown, but to be described hereinafter) for storing user performance data. The past performance data also referred to as “target performance” is organized in the database in a timely calendar or other easily re-discoverable format. A user may download target performance data from the storage device 170 to the analyzer, via the keyboard 136 for display in the display 134. The user's current performance as captured by the analyzer may be shown in the display 134, along with the target performance data for comparison and teaching purposes. The current performance data may be uploaded to the storage unit 170 for subsequent recall in learning and teaching.

Turning to FIG. 1D, the ROM 146 includes stored programs for use by the processor in implementing the various function of the analyzer. A short-range communication protocol 147, wired or wireless, facilitates communication between the analyzer and the server. Typically Bluetooth can handle wireless communication with the Access Point 164, when the analyzer and server or Access Point is within 100 meters of one another. The details of Bluetooth operation are described in the text “Bluetooth Revealed” by Grant A. Miller et al., published by Prentice Hall PTR, Inc., Upper Saddle River, N.Y. 07458 (2000) ISBN 0-13-490294-2, Chapter Six. Alternatively, a cellular communication protocol (Global System Mobile) may be substituted for the Bluetooth protocol in the event the analyzer and server or Access Point is more than 100 meters apart. Global System Mobile is described in the text An Introduction To GSM, by S. M. Redl, et al, published by Artech Publishers, Boston, Mass. 1995, Chapter Three.

A swing movement algorithm 149, is included in the stored programs for generating and processing sensor signals received from the sensors during a swing movement 106 along the swing path. The sensor signals are provided for various parameters at various swing points or events of the club along the swing path.

Commercially available voice recognition software 151, e.g. Scansoft, available from Nuance, 1 Wayside Road, Burlington, Mass. 01803, enables the user to provide voice commands to the analyzer via the microphone 138.

A standard Operating System 153, e.g. Window, Linux and the like manage the operation of the analyzer.

The user's performance data in learning or practicing a swing is collected by the analyzer and stored in the ROM as Current Analyzer Data 155 for display to the user and for comparison with target performance data.

The swing movement algorithm 149 is described in a specification by Chapters, as follows:

Chapter 1. Sensor Data

All algorithms in this specification use rotation (angular velocity) and/or acceleration sensor data as input for sensor data shown in Table 1 below. TABLE 1 Sensor data. Sensor Marker Unit x″ axis acceleration a_(x″) m/sec² y″ axis acceleration a_(y″) m/sec² z″ axis acceleration a_(z″) m/sec² x″ axis rotation ω_(x″) rad/sec y″ axis rotation ω_(y″) rad/sec z″ axis rotation ω_(z″) rad/sec

Chapter 2. Co-Ordinate Systems

FIG. 2A shows how the sensor box 154 (see FIG. 1C) is rotated when acceleration from y″ axis sensor is measured.

FIG. 2B shows raw sensor data from the acceleration sensors when the sensor box is rotated around different axis, where Y axis data is a number from an A/D converter and x axis data is time in seconds.

FIG. 2C shows how the sensor co-ordinate system is oriented on the wrist of the player 102. There are three orthogonal co-ordinate systems present during the swing analysis. First, reference co-ordinate system is the nonmoving co-ordinate system that is aligned vertically (y-axis) with gravity and laterally (x-axis) along the target line. Here target line means the direction towards the target thee player is aiming.

Second during calculations there is a co-ordinate system that is aligned to the sensor box orientation at the player's address position with respect to the ball. This co-ordinate system is not moving relative to the reference co-ordinate system. This address position co-ordinate system is defined by x′, y′, and z′ axis.

Third the measurement co-ordinate system is aligned to the sensor box that is attached to wrist. Since the wrist moves during the sports exercise the measurement co-ordinate system rotates also around. This measurement co-ordinate system is defined by x″, y″, and z″ axis.

Chapter 3.0 Swing Algorithm Description

There is a general problem when analyzing and/or giving feedback during sports performance. Since the user is most of the time moving during the performance, the problem is how to detect when the user is performing sports movement that we want to guide and/or analyze. The problems that must be solved can be divided to following categories

-   1. Detect when sports swing is happening. -   2. Categorize movement (done by user when selecting from menu full     swing, short game or putt). -   3. Analyze movement dividing it into predefined parts or swing     positions, as follows:     -   Position 1—¼ Backswing.     -   Position 2—½ Backswing     -   Position 3—Top Backswing     -   Position 4—½ Downswing     -   Position 5—¾ Downswing     -   Position 6—Impact     -   Position 7—Upswing or Follow Through

FIG. 3A describes a process 300 implementing an analysis of the categories of user movements for swing detection; putt detection and short game detection. A movement category 302 is selected for analysis. A movement performance is conducted for a selected period of time (x). The acceleration and angular rotation data 304 is collected by the analyzer for an analysis using an appropriate algorithm for the selected movement. The results are displayed to the user by the analyzer.

Chapter 4.0 Swing Detection Algorithm

4.1 Full Swing Detection

Swing detection should be divided into two categories that are addressed separately. First category is the swing detection for post swing analysis. Second category is the sequential detection of the swing parts, as they happen, in order to be able to give feedback during the movement.

4.1.1 Detecting the Whole Swing

FIG. 4A shows a block diagram 400 for a swing detection algorithm responsive to acceleration and angular rotation data. While the player is in a nonmoving state 404; addressing the ball 406; starting a swing 408; detecting the down swing t2 for a period of time 412 (x sec.). Blocks are explained as follows.

4.1.1.1 Stage 1, Detect Down Swing

Downswing is the fastest part of the movement, which makes it the easiest to detect. Downswing can be detected simply with thresholds for angular velocities and accelerations. FIG. 4B shows the typical angular velocities during the down swing.

4.1.1.2 Stage 2, Check Start of the Swing Time

This detection is on all the time. Last detected point is kept in memory. When down swing (stage 1) is found, algorithm checks that last start of swing happened less than predefined time (Δt₂) ago and not less that time ((Δt₁) ago.

Start of swing has two conditions. First condition is that the device must be non moving. This means that the angular velocities are below a certain threshold (ω_(start)). Second condition that must be met at the same time is that the device is in orientation that corresponds to address position. The orientation that is based on earth gravitation is measured by accelerometers. This is shown in FIG. 4C. The orientation must be within predefined limits (Δa_(x) _(—) _(address), Δa_(y) _(—) _(adress), Δa_(z) _(—) _(adress)) from the saved address position (a_(x) _(—) _(address), a_(y) _(—) _(adress), a_(z) _(—) _(adress)).

4.1.2 Sequential Detection of the Swing Parts, as they Happen

The algorithm for sequential detection has to be flexible and recover quickly from error states so that the real swing is not missed. In addition, the algorithm must be very simple so that there is minimal latency and so that it can be implemented to a small microcontroller.

4.1.2.2 Stage 2 Start of the Swing

Specification Chapter 4.1.1.2 describes how the start of the swing is detected. This detection is on all the time when algorithm is active. The last detected point is kept in memory. Every time this detection is true the algorithm immediately starts from stage 3.

4.1.2.3 Stage 3, Angular Velocity threshold

Stage 3 is detected if three conditions are met. First and second are that the angular velocity ω_(x) exceed predefined threshold value, and other angular velocities are in predefined range. Third condition is that non-moving location detected in stage 2 is less than time Δt₂ ago. When stage 3 is detected, the algorithm moves to stage 4. FIG. 4D detects address position measuring direction.

4.1.2.4 Stage 4, Swing Started to Right Direction

The swing direction can be monitored calculating cross product of arm direction in address position and during the swing. The resulting vector must point to certain direction for the swing to qualify as acceptable. Cross product is calculated {right arrow over (s)}=arm_(X)×[1 0 0]=[0 arm_(X)(3)−arm_(X)(2)].  Eq. 1. Stage 4 is calculated from same time point as the stage 3. When stage 4 is detected, the algorithm moves to stage 5.

4.1.2.5 Stage 5, End of Backswing

End of the backswing is detected (for right handed player) when ω_(x″)(i)<0 ω_(x″)(i−1)>0  Eq. (2) Signs are opposite for left handed player. Detection must occur within time Δt₃ from the beginning of the swing.

4.1.2.6 Stage 6, Detect Downswing

Down swing detection was previously explained in specification Chapter 4.1.1.1. Detection must occur within time Δt₄ from the end of the backswing.

4.1.2.7 Stage 7, Detect Hit Time

How to detect when the club hits the ball is explained in specification Chapter 5.2.7. Detection must occur within time Δt₅ from the end of the backswing.

Chapter 5.0 Parameter Values Calculated from Sensor Values

This chapter describes how the different swing parameters are calculated. For instance, we calculate the 6 degrees of freedom (3 are location co-ordinates and 3 are orientation values) of the wrist during the swing. In order for the calculations to apply both left and right handed players we introduce fist variable $\begin{matrix} {H_{handedness}\left\{ \begin{matrix} {{= 1},{{for}\quad{right}\quad{side}\quad{players}}} \\ {{- 1},{{for}\quad{left}\quad{side}\quad{{players}.}}} \end{matrix} \right.} & {{Eq}.\quad(3)} \end{matrix}$

5.1 Angle Change

Angle change Δφ″, Δθ″, and Δψ″ are calculated from angular velocity using $\begin{matrix} {{{\Delta\quad\varphi^{''}} = \frac{\omega_{x^{''}}}{f_{SF}}},{{\Delta\quad\theta^{''}} = \frac{\omega_{y^{''}}}{f_{SF}}},{{{and}\quad\Delta\quad\psi^{''}} = \frac{\omega_{z^{''}}}{f_{SF}}},} & {{Eq}.\quad(4)} \end{matrix}$

where f_(SF) is measurement frequency.

5.2 Rotation Matrix

Rotation matrix describes orientation change from previous position. Elements of the temporal rotation matrix ΔR are calculated at each measurement time step from angle change using: $\begin{matrix} {{\Delta\quad{R\left( t_{i} \right)}} = \begin{bmatrix} {\cos\quad\Delta\quad\theta^{''}\cos\quad\Delta\quad\psi^{''}} & {\cos\quad\Delta\quad\theta^{''}\sin\quad\Delta\quad\psi^{''}} & {{- \sin}\quad\Delta\quad\theta^{''}} \\ \begin{matrix} {\sin\quad\Delta\quad\varphi^{''}\sin\quad\Delta\quad\theta^{''}} \\ {{\cos\quad\Delta\quad\psi^{''}} -} \\ {\cos\quad\Delta\quad\varphi^{\quad''}\sin\quad\Delta\quad\psi^{\quad''}} \end{matrix} & \begin{matrix} {\sin\quad\Delta\quad\varphi^{''}\sin\quad\Delta\quad\theta^{''}} \\ {{\sin\quad\Delta\quad\psi^{''}} +} \\ {\cos\quad\Delta\quad\varphi^{''}\cos\quad\Delta\quad\psi^{''}} \end{matrix} & {\sin\quad\Delta\quad\varphi^{''}\cos\quad\Delta\quad\theta^{''}} \\ \begin{matrix} {\cos\quad\Delta\quad\varphi^{''}\sin\quad\Delta\quad\theta^{''}} \\ {{\cos\quad\Delta\quad\psi^{''}} +} \\ {\sin\quad\Delta\quad\varphi^{''}\sin\quad\Delta\quad\psi^{''}} \end{matrix} & \begin{matrix} {\cos\quad\Delta\quad\varphi^{''}\sin\quad\Delta\quad\theta^{''}} \\ {{\sin\quad\Delta\quad\psi^{''}} -} \\ {\sin\quad\Delta\quad\varphi^{''}\cos\quad\Delta\quad\psi^{''}} \end{matrix} & {\cos\quad\Delta\quad\varphi^{''}\cos\quad\Delta\quad\theta^{''}} \end{bmatrix}} & {{Eq}.\quad(5)} \end{matrix}$

The orientation change from the start position is calculated multiplying the temporal rotation matrix with previous rotation matrix after each time step. R′(t _(i))=ΔR(t _(i))R′(t _(i−1))  Eq. (6)

Rotation matrix at the start position t₁ is $\begin{matrix} {{R^{\prime}\left( t_{1} \right)} = {\begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}.}} & {{Eq}.\quad(7)} \end{matrix}$

This means that co-ordinates are now aligned along the x′, y′, and z′ axis in the address position co-ordinate system. To change the co-ordinate system to vertical position we have to calculate the rotation matrix from address position to vertical position. We can do this using earth gravitation that we can measure using 3D accelerometer. Earth gravitation vector g must be calculated at start position when device is not moving. This is done averaging Δt₆ seconds of acceleration sensor data before swing start time. We define that the earth gravitational direction is our new y axis direction. $\begin{matrix} {{\overset{\rightarrow}{y} = {- \frac{{\overset{\rightarrow}{g}}^{\prime}}{{\overset{\rightarrow}{g}}^{\prime}}}},} & {{Eq}.\quad(8)} \end{matrix}$ and the lateral projection of the y′ axis, defines the z axis direction. Cross product of vector y′=[0 1 0]  Eq. (9) And y gives z axis $\begin{matrix} {\overset{\rightarrow}{z} = {\frac{{\overset{\rightarrow}{y}}^{\prime} \times \overset{\rightarrow}{y}}{{{\overset{\rightarrow}{y}}^{\prime} \times \overset{\rightarrow}{y}}} = \frac{\begin{bmatrix} {{{{y^{\prime}(2)}{y(3)}} - {{y^{\prime}(3)}{y(2)}}},{{{y^{\prime}(3)}{y(1)}} -}} \\ {{{y^{\prime}(1)}{y(3)}},{{{y^{\prime}(1)}{y(2)}} - {{y^{\prime}(2)}{y(1)}}}} \end{bmatrix}}{\begin{bmatrix} {{{{y^{\prime}(2)}{y(3)}} - {{y^{\prime}(3)}{y(2)}}},{{{y^{\prime}(3)}{y(1)}} -}} \\ {{{y^{\prime}(1)}{y(3)}},{{{y^{\prime}(1)}{y(2)}} - {{y^{\prime}(2)}{y(1)}}}} \end{bmatrix}}}} & {{Eq}.\quad(10)} \end{matrix}$

The last co-ordinate axis x is then cross product of the other axis $\begin{matrix} {\overset{\rightarrow}{x} = {\frac{{\overset{\rightarrow}{y}}^{\prime} \times \overset{\rightarrow}{z}}{{{\overset{\rightarrow}{y}}^{\prime} \times \overset{\rightarrow}{z}}} = \frac{\begin{bmatrix} {{{{y(2)}{z(3)}} - {{y(3)}{z(2)}}},{{{y(3)}{z(1)}} -}} \\ {{{y(1)}{z(3)}},{{{y(1)}{z(2)}} - {{y(2)}{z(1)}}}} \end{bmatrix}}{\begin{bmatrix} {{{{y(2)}{z(3)}} - {{y(3)}{z(2)}}},{{{y(3)}{z(1)}} -}} \\ {{{y(1)}{z(3)}},{{{y(1)}{z(2)}} - {{y(2)}{z(1)}}}} \end{bmatrix}}}} & {{Eq}.\quad(11)} \end{matrix}$

Now we get the rotation matrix from earth gravitation co-ordinates to address position co-ordinates $\begin{matrix} {R_{vertical}^{\prime} = \begin{bmatrix} {x(1)} & {x(2)} & {x(3)} \\ {x(1)} & {y(2)} & {y(3)} \\ {z(1)} & {z(2)} & {z(3)} \end{bmatrix}} & {{Eq}.\quad(12)} \end{matrix}$

In order to get the rotation matrix the other way from address position to gravitation, we have to calculate inverted matrix $\begin{matrix} {R_{vertical}^{\prime - 1} = {R_{vertical} = {\quad\left\lbrack \begin{matrix} \begin{matrix} {R^{\prime}\left( {2,2} \right)} \\ {{R^{\prime}\left( {3,3} \right)} -} \\ {{R^{\prime}\left( {2,3} \right)}{R^{\prime}\left( {3,2} \right)}} \end{matrix} & \begin{matrix} {R^{\prime}\left( {2,3} \right)} \\ {{R^{\prime}\left( {3,1} \right)} -} \\ {{R^{\prime}\left( {2,1} \right)}{R^{\prime}\left( {3,3} \right)}} \end{matrix} & \begin{matrix} {R^{\prime}\left( {2,1} \right)} \\ {{R^{\prime}\left( {3,2} \right)} -} \\ {{R^{\prime}\left( {2,2} \right)}{R^{\prime}\left( {3,1} \right)}} \end{matrix} \\ \begin{matrix} {- {R^{\prime}\left( {1,2} \right)}} \\ {{R^{\prime}\left( {3,3} \right)} +} \\ {{R^{\prime}\left( {1,3} \right)}{R^{\prime}\left( {3,2} \right)}} \end{matrix} & \begin{matrix} {R^{\prime}\left( {3,3} \right)} \\ {{R^{\prime}\left( {1,1} \right)} -} \\ {{R^{\prime}\left( {1,3} \right)}{R^{\prime}\left( {3,1} \right)}} \end{matrix} & \begin{matrix} {R^{\prime}\left( {3,1} \right)} \\ {{R^{\prime}\left( {1,2} \right)} -} \\ {{R^{\prime}\left( {3,2} \right)}{R^{\prime}\left( {1,1} \right)}} \end{matrix} \\ \begin{matrix} {R^{\prime}\left( {1,2} \right)} \\ {{R^{\prime}\left( {2,3} \right)} -} \\ {{R^{\prime}\left( {1,3} \right)}{R^{\prime}\left( {2,2} \right)}} \end{matrix} & \begin{matrix} {R^{\prime}\left( {1,3} \right)} \\ {{R^{\prime}\left( {2,1} \right)} -} \\ {{R^{\prime}\left( {1,1} \right)}{R^{\prime}\left( {2,3} \right)}} \end{matrix} & \begin{matrix} {R^{\prime}\left( {1,1} \right)} \\ {{R^{\prime}\left( {2,2} \right)} -} \\ {{R^{\prime}\left( {1,2} \right)}{R^{\prime}\left( {2,1} \right)}} \end{matrix} \end{matrix}\quad \right\rbrack}}} & {{Eq}.\quad(13)} \end{matrix}$

The y-axis is now aligned to vertical direction and the z axis is aligned to direction of the y′ axis at the start. That is perpendicular to the direction of the wrist. To align x-axis along the target line. We need to rotate co-ordinates around y-axis amount β. There are several methods to determine β. β can be based on the hand orientation at address or it can be based on the hand movement during the swing. Rotation matrix for y-axis rotation is $\begin{matrix} {R_{aligned} = {R_{vertical}\begin{bmatrix} {\cos\quad\beta} & 0 & {{- \sin}\quad\beta} \\ 0 & 1 & 0 \\ {\sin\quad\beta} & 0 & {\cos\quad\beta} \end{bmatrix}}} & {{Eq}.\quad(14)} \end{matrix}$

Now the final rotation matrix at each measured point is R′(t _(i))=(ΔR(t _(i))R′(t _(i−1)))R _(aligned)  Eq. (15)

5.3 Acceleration of Wrist

Acceleration in reference co-ordinate system is calculated using rotation matrix {right arrow over (a)} _(x) =R(t _(i)){right arrow over (a)} _(x′) , {right arrow over (a)} _(Y) =R(t _(i)){right arrow over (a)} _(y′), and {right arrow over (a)} _(Z) =R(t _(i)){right arrow over (a)} _(z′).  Eq. (16)

This acceleration contains naturally earth gravitation, which has to be removed. The gravitation is measured at the beginning of the swing when we detected that the device is not moving. {right arrow over (a)} _(X) ={right arrow over (a)} _(X) −{right arrow over (g)} _(X) , {right arrow over (a)} _(Y) ={right arrow over (a)} _(Y) −{right arrow over (g)} _(Y) , {right arrow over (a)} _(Z) ={right arrow over (a)} _(Z) −{right arrow over (g)} _(Z)  Eq. (17)

5.4 Speed of Wrist

Speed in reference co-ordinate system is calculated numerically integrating $\begin{matrix} \begin{matrix} {{{v_{X}\left( t_{i} \right)} = {{v_{X}\left( t_{i - 1} \right)} + \frac{{{\overset{\rightarrow}{a}}_{X}\left( t_{i} \right)}}{f_{measurement}}}},} \\ {{{v_{Y}\left( t_{i} \right)} = {{v_{Y}\left( t_{i - 1} \right)} + \frac{{{\overset{\rightarrow}{a}}_{Y}\left( t_{i} \right)}}{f_{measurement}}}},{and}} \\ {{v_{Z}\left( t_{i} \right)} = {{v_{Z}\left( t_{i - 1} \right)} + \frac{{{\overset{\rightarrow}{a}}_{Z}\left( t_{i} \right)}}{f_{measurement}}}} \end{matrix} & {{Eq}.\quad(18)} \end{matrix}$

5.5 Location of Wrist

Location in reference co-ordinate system is calculated numerically integrating $\begin{matrix} \begin{matrix} {{{X\left( t_{i} \right)} = {{X\left( t_{i - 1} \right)} + \frac{v_{X}\left( t_{i} \right)}{f_{measurement}}}},} \\ {{{Y\left( t_{i} \right)} = {{Y\left( t_{i - 1} \right)} + \frac{v_{Y}\left( t_{i} \right)}{f_{measurement}}}},{and}} \\ {{Z\left( t_{i} \right)} = {{Z\left( t_{i - 1} \right)} + \frac{v_{Z}\left( t_{i} \right)}{f_{measurement}}}} \end{matrix} & {{Eq}.\quad(19)} \end{matrix}$

5.6 Swing Angle

The swing angle is calculated from the projection of the wrist direction (x-axis of measurement co-ordinate system) into the xy-plane of the reference co-ordinate system. The swing angle is angle between vertical direction and the wrist projection to the xy-plane. For instance swing length is delivered from this calculation. It can be presented to user in many ways: as degrees from address position, as percentage of full swing or as equivalent clock position. After the rotation matrix is calculated the wrist direction becomes arm_(X)(1:3,t _(i))=R(1,1:3,t _(i)).  Eq. (20) Because the swing length is calculated from the projection of arm_(X) to the plane formed by x and y axis, the z axis component must be zero arm_(X)(1:3,t _(i))=[arm_(X)(1,t _(i)), arm_(X)(2,t _(i)),0].  Eq. (21)

Now we get the swing angle $\begin{matrix} \begin{matrix} {\alpha_{swing\_ angle} = {{arc}\quad{\cos\left( \frac{{{arm}_{X}\left( {{1\text{:}2},t_{i}} \right)} \cdot \begin{bmatrix} 0 & {- 1} \end{bmatrix}}{{{arm}_{X}\left( {{1\text{:}2},t_{i}} \right)}} \right)}}} \\ {= {{arc}\quad{{\cos\left( \frac{- {{arm}_{X}\left( {2,t_{i}} \right)}}{{{arm}_{X}\left( {{1\text{:}2},t_{i}} \right)}} \right)}.}}} \end{matrix} & {{Eq}.\quad 22} \end{matrix}$

5.7 Left Forearm Rotation

Left arm rotation is calculated in radians rotated relative to the address position. Simple integration of the measured angle change in (1) gives $\begin{matrix} {\left. {\beta = {{\int_{0}^{t\_ swing}{\Delta\quad\varphi^{\prime}{\mathbb{d}t}}} - {{{right\_ side} \cdot {arc}}\quad{\tan\left( \frac{\left( {{arm}_{Y}\left( {1,1} \right)} \right.}{{arm}_{Y}\left( {1,3} \right)} \right)}}}} \right),} & {{Eq}.\quad(23)} \end{matrix}$ Where arm_(Y)(1:3,t _(i))=R(2,1:3,t _(i)).  Eq. (24)

When the left forearm rotation is combined with the swing angle we get squaring of forehand during the swing.

5.8 Steepness Relative to the Reference Swing (Shallow/Steep)

After we have calculated the swing angle α we can find the seven swing locations (α_(i)). Then we can compare how shallow or steep we are in these positions relative to the reference swing. Comparison is done with arm vector (arm_(X)) from current swing and from reference swing. For positions 2, 3, 5, and 6 we can calculate $\begin{matrix} \begin{matrix} {\phi = {{arc}\quad{\cos\left( \frac{{{{arm}_{X}\left( {\alpha_{i},{1\text{:}3}} \right)} \cdot {arm\_ ref}_{X}}\left( {\alpha_{i},{1\text{:}3}} \right)}{{{{arm}_{X}\left( {\alpha_{i},{1\text{:}3}} \right)}}{{{arm\_ ref}_{X}\left( {\alpha_{i},{1\text{:}3}} \right)}}} \right)}}} \\ {{= {{arc}\quad{\cos\left( {{{{arm}_{X}\left( {\alpha_{i},{1\text{:}3}} \right)} \cdot {arm\_ ref}_{X}}\left( {\alpha_{i},{1\text{:}3}} \right)} \right)}}},} \end{matrix} & {{Eq}.\quad(25)} \end{matrix}$

where φ is difference in steepness in radians between the current swing position and reference position. Here we assumed that because the angle α_(i) is same then the x axis value is same for both arm vectors. However, for positions 1, 4, and 7 we need to first define that temporarily the x axis values for arm_ref_(X) and arm_(X) are the same $\begin{matrix} {{{{arm\_ temp}_{X}\left( {\alpha_{i},{1:3}} \right)} = {{arm}_{X}\left( {\alpha_{i},{1:3}} \right)}},} & {{Eq}.\quad(26)} \\ {{{{arm\_ temp}_{X}\left( {\alpha_{i},1} \right)} = {{arm\_ ref}_{X}\left( {\alpha_{i},1} \right)}},{and}} & {{Eq}.\quad(27)} \\ {{{arm\_ temp}_{X}\left( {\alpha_{i},2} \right)} = {\sqrt{\begin{matrix} {1 - {{arm\_ temp}_{X}\left( {\alpha_{i},1} \right)^{2}} -} \\ {{arm\_ temp}_{X}\left( {\alpha_{i},3} \right)^{2}} \end{matrix}}.}} & {{Eq}.\quad(28)} \end{matrix}$

If we replace arm_(X) with arm_temp_(X), we can use equation (29) to calculate the steepness. The sign or the direction (shallow or steep) is calculated for the right hand players arm_(X)(α_(i),3)−arm_ref_(X)(α_(i),3)<0, steep, arm_(X)(α_(i),3)−arm_ref_(X)(α_(i),3)>0, shallow.  Eq. (29) for the left hand players the signs are opposite. Same way the steepness of the swing can be calculated using wrist location values. The arm_(X) vector is just replaced with unit vector that points from the swing origin to the location of selected swing position. Swing origin is explained in Chapter 5.10.

5.9 Left Arm Line (Right or Left)

Calculation of left arm line is very similar to steepness calculation. However now the z axis value of arm_ref_(X) and arm_(X) are the same $\begin{matrix} {{{{arm\_ temp}_{X}\quad\left( {\alpha_{i},{1\text{:}3}} \right)} = {{arm}_{X}\left( {\alpha_{i},{1\text{:}3}} \right)}},} & {{Eq}\quad.\quad(30)} \\ {{{{arm\_ temp}_{X}\quad\left( {\alpha_{i},3} \right)} = {{arm\_ ref}_{X}\quad\left( {\alpha_{i},3} \right)}},{and}} & {{Eq}\quad.\quad(31)} \\ {{{arm\_ temp}_{X}\quad\left( {\alpha_{i},2} \right)} = {\sqrt{\begin{matrix} {{1 - {{arm\_ temp}_{X}\quad\left( {\alpha_{i},1} \right)^{2}} -}\quad} \\ {{arm\_ temp}_{X}\quad\left( {\alpha_{i},3} \right)^{2}} \end{matrix}}.}} & {{Eq}\quad.\quad(32)} \end{matrix}$

We can now calculate how much left arm is right or left from the target position $\begin{matrix} \begin{matrix} {\gamma = {{arc}\quad{\cos\left( \frac{{arm\_ temp}_{X}{\left( {\alpha_{i},{1\text{:}3}} \right) \cdot {arm\_ ref}_{X}}\left( {\alpha_{i},{1\text{:}3}} \right)}{{{{arm\_ temp}_{X}\left( {\alpha_{i},{1\text{:}3}} \right)}}{{{arm\_ ref}_{X}\left( {\alpha_{i},{1\text{:}3}} \right)}}} \right)}}} \\ {= {{arc}\quad{{\cos\left( {{arm\_ temp}_{X}{\left( {\alpha_{i},{1\text{:}3}} \right) \cdot {arm\_ ref}_{X}}\left( {\alpha_{i},{1\text{:}3}} \right)} \right)}.}}} \end{matrix} & {{Eq}.\quad(33)} \end{matrix}$ The sign or the direction (right or left) is calculated for the right hand players arm_(X)(α_(i),1)−arm_ref_(X)(α_(i),1)<0, right, arm_(X)(α_(i),3)−arm_ref_(X)(α_(i),3)>0, left.  Eq. (34)

For left hand players the signs are opposite. Same way the left arm line of the swing can be calculated using wrist location values. The arm_(X) vector is just replaced with unit vector that points from the swing origin to the location of selected swing position. Swing origin is explained in Chapter 5.10.

5.10 Width of the Swing

Width of the swing is calculated using wrist location data (X, Y, Z) calculated in Chapter 5.5. First we have to define origin based on which width is calculated. Origin has to be selected so that it allows best comparison between players. Co-ordinates for origin are $\begin{matrix} {{{X_{width\_ origo} = {{{- Y_{{Position\_}3}} \cdot {\tan\left( \alpha_{{Position\_}1} \right)}} + 0.1}},{Y_{width\_ origo} = Y_{{Position\_}3}},{and}}{{Z_{width\_ origo} = {H_{handedness}{Y_{{Position\_}3} \cdot {\tan\left( \lambda_{{Position\_}1} \right)}}}},{Where}}} & (35) \\ {\lambda_{{Position\_}1} = {{arc}\quad{{\tan\left( \frac{{arm}_{X}\left( {3,t_{i}} \right)}{{arm}_{X}\left( {2,t_{i}} \right)} \right)}.}}} & (36) \end{matrix}$ Now we can calculate width based on FIGS. 5A and 5B. $\begin{matrix} {{{width}\quad(i)} = {\sqrt{\begin{matrix} \begin{matrix} {\left( {{X(i)} - X_{width\_ origo}} \right)^{2} +} \\ {\left( {{Y(i)} - Y_{width\_ origo}} \right)^{2} +} \end{matrix} \\ \left( {{Z(i)} - Z_{width\_ origo}} \right)^{2} \end{matrix}}.}} & (37) \end{matrix}$

5.11 Club Head Speed

Club head speed depends from the speed of the hands, rotation of the forearm, and the wrist cocking. Clubhead speed is estimated from acceleration sensor data ν_(clubhead)=0.175·(2|a _(x″) ^(max)|+1.3|a _(y″) ^(max) |+|a _(z″)|+1.2|Δa _(x″)|+2|Δa _(y″)|)D(club)  Eq. (38) Where a_(x″) ^(max) is maximum acceleration so far in x-axis, a_(y″) ^(max) is maximum acceleration so far in y-axis, Δa_(x″) and Δa_(x″) are calculated with eq (42), and D(club) is club multiplier. Δa _(x″) =|a _(x″) ^(max) |−|a _(x″)|, when a _(x″) ^(max) >a _(x″), Δa_(x″)=0, when a_(x″) ^(max)<a_(x″), Δa _(y″) =|a _(y″) ^(max) |−|a _(y″)|, when a _(y″) ^(max) >a _(y″), and Δa_(y″)=0, when a_(y″) ^(max)<a_(y″)  (39) The clubhead speed is filtered slightly with FIR filter $\begin{matrix} {{{v_{clubhead}({\mathbb{i}})} = {\sum\limits_{k = 0}^{m - 1}{h_{k}{v_{clubhead}\left( {{\mathbb{i}} - k} \right)}}}},} & (40) \end{matrix}$

where m is number of filter taps, and h_(k) are the filter taps listed in Table 2. The cut-off frequency of the FIR filter is ⅛·f_(SF). TABLE 2 FIR filter tap values. Tap No (k) Value 0 0.0368626 1 0.019574609 2 −0.023181587 3 −0.05903686 4 −0.04914286 5 0.02388607 6 0.13902785 7 0.2445255 8 0.28715014 9 0.2445255 10 0.13902785 11 0.02388607 12 −0.04914286 13 −0.05903686 14 −0.023181587 15 0.019574609 16 0.0368626

5.10.1 Maximum Club Head Speed

Maximum club head speed is defined as maximum of ν_(clubhead) before the impact.

Chapter 6.0 Analyze Swing

6.1 Swing Dynamics

6.1.1 Tempo

Tempo is time values between different parts of the swing. Interesting values are:

-   Start of backswing to the top of backswing (t_(backswing)) -   Start of downswing to impact (t_(downswing)) -   Total time of the back and down swing     t _(swing) =t _(backswing) +t _(downswing)  Eq. (41) -   Pause at the top if it exists

The time values for back and downswing are achieved when different locations are detected as described in Chapter 7.2.

6.1.2 Rhythm

Rhythm is the ratio of different parts of the swing. For instance, ration of backswing and downswing times.

6.1.3 Timing

Timing means a multitude of different things in golf. The timing, as it is discussed as a golf feature that is feasible to do in a wrist stop, is timing of different actions during the swing. For instance, timing of the forearm rotation (Chapter 5.7) in backswing and the downswing. Difference between timing and the tempo is that changing the tempo does not change swing mechanics, but changing i.e. timing of forearm rotation will change the swing mechanics.

6.2 Swing Positions

We calculate the 6 degrees of freedom (3 are location co-ordinates and 3 are orientation values) of the wrist during the swing. To make the data easy for user to analyze, we present this data in only 7 points for the user. Analysis starts with detection of these seven swing points.

6.2.1 Start of Swing

Start of swing is already defined during the swing detection described in specification Chapter 4.1.1.2.

6.2.2 ¼ Swing (Back Swing)

¼ swing location and/or orientation for reference swing are defined by forearm rotation (described in Chapter 5.7). In ¼ swing position, the forearm has rotated 90 degrees compared to the start of the swing. When two ¼ positions from different swings are compared. The reference swing defines the swing angle (α_(1/4) _(—) _(backswing)) and the analyzed swing is compared to reference at this swing angle. So the analyzed swing does not have necessarily forearm rotated 90 degrees at this point. Calculation of swing angle is in specification Chapter 5.6

6.2.3 ½ Swing (Back Swing)

½ swing location and/or orientation (in backswing) is defined as 90 degree swing angle (α_(1/2) _(—) _(backswing)). Calculation of swing angle is in specification Chapter 5.6.

6.2.3 Top of Back Swing

Top(=end) of back swing is defined as the time, location and/or orientation where the swing angle has maximum value (α_(top) _(—) _(swing) _(—) _(measured)). Calculation of swing angle is in specification Chapter 5.6.

6.2.4 ½ Swing (Down Swing)

½ swing location and/or orientation (in down swing) is defined as 90 degree swing angle (α_(1/2) _(—) _(downswing)). Calculation of swing angle is in specification Chapter 5.6.

6.2.5 ¼ Swing (Down Swing)

¼ swing location and/or orientation for reference swing are defined by forearm rotation (described in Chapter 5.7). In the ¼ swing position (downswing), the forearm has under rotated 90 degrees compared to the end of the swing. When two ¼ swing positions from different swings are compared. The reference swing defines the swing angle (α_(1/4) _(—) _(downswing)) and the analyzed swing is compared to reference at this swing angle. Calculation of swing angle is in specification Chapter 5.6.

6.2.6 Hit Time

Hit time, location and/or orientation is defined as the time and angle (α_(impact) _(—) _(measured)) when the club hits the ball. It is detected from peaks in the second derivate of acceleration and/or angular rate. Large value means that there is oscillation in the club shaft and in the hand due to the impact. Numerical method gives equation for second derivative $\begin{matrix} {\frac{\mathbb{d}^{2}a_{x}^{''}}{\mathbb{d}t^{2}} = {\frac{{a_{x}^{''}\left( {n - 2} \right)} - {2{a_{x}^{''}\left( {n - 1} \right)}} + {a_{x}^{''}(n)}}{f_{SF}^{2}}.}} & {{Eq}.\quad(42)} \end{matrix}$

The hit time is defined when the derivate has highest value. In order for hit time to detect derivate must be at least 10/f_(SF) ². In addition, to detect new highest value for derivate the next value must be 4/f_(SF) ² higher than previous highest value.

A process 300 for selecting swing positions for measurement and analysis is described in FIG. 6, as follows:

-   -   Step 1: A list of swing positions is developed by the user for         measurement and analysis.     -   Step 2: A swing position is selected from the list.     -   Step 3: The user takes the selected position.     -   Step 4: The selected position is displayed until the whole swing         process is exited.     -   Step 5: The user takes the position within N seconds, where N         can range from 1 to 10 seconds, otherwise the control returns to         the initial view.     -   Step 6: The swing position is registered if the position is         taken by the user within N seconds. Otherwise the process         returns to step 1.     -   Step 7: The sensors in the analyzer record the position data.     -   Step 8: The analyzer provides an audio or vibration signal to         the user that the sensors are recording the position data.     -   Step 9: The process is returned to step 1 in the event the         sensors are unable to record the swing position data.     -   Step 10: The sensor stay still for M seconds at a minimum, where         M can range from 1 to 10 seconds, and the failure to do so         returns the process to step 1.     -   Step 11: The position data is saved when the sensor is still for         M seconds or the process returns to step 1 for the reselection         of another position.     -   Step 12: A confirmation query is returned to step 3 if user         wants to save another position or exits if not.

Referring to FIG. 7A, a pictorial representations of a golfer's swing, as viewed by the golfer, shows the measurements made on the left wrist of the golfer relative to a standard golf as swing generated by the swing algorithm described above in Chapter 3.0. FIG. 7B is a pictorial representation of the golfer's swing and measurements made as viewed by a third person from the side of the golfer. FIG. 7C is a pictorial representation of the golfer's swing and measurements made as viewed by a third party from the rear of the golfer. The club movement is represented by the movement of a standard club head on a horizontal and a vertical axis shown in the FIGS. 7A, B and C. The measurements are displayed at the bottom of each Figure. The left measurement in each Figure describes the rotation of a golfer's left arm in degrees relative to the standard club head rotation at each measuring point in the swing. The center measurement in each Figure describes the vertical position (high or low) of the measured club head in inches from the standard club head position at each measuring point. The right measurement in each Figure describes the distance or width (right, left or neutral) in inches of the measured club from the standard club head at each measuring point.

The swing positions and measured data are shown in Table 3, as follows: Swing position Measuring Unit Address Left Am Rotation Degree Distance from the ball Inch or (high or low) Centimeter Left arm line (left or right) Inch or Centimeter ¼ up (1) Left arm rotation Degree Position (shallow˜-steep) Inch or Centimeter Width wide-narrow r) Inch or Centimeter ½ up (2) Left arm rotation Degree Position {shallow-steep) Inch or Centimeter Width (wide-narrow) Inch or Centimeter Top (3) Left arm rotation Degree Position (shallow-steep) Inch or Centimeter swing length /a (of maximum) Width wide-narrow) Inch; or Centimeter ½ down (4) Left arm rotation Degree Position (shallow-steep) Inch or Centimeter Width (wide-narrow) Inch or Centimeter ¾ down (5) Left arm rotation Degree Position (shallorg˜steep) Inch or Centimeter Width (wide-narrow) Inch or Centimeter Impact (6) Left arm rotation Degree Distance. from the ball Inch or Centimeter Left arm line (left or right) Inch or Centimeter Follow thru (7) Left arm rotation Degree Position (shallow-steep) Inch or Centimeter Width (wide-narrow) Inch or Centimeter

1. Table 3 Parameter calculations:

1.1 The left arm rotation is given by equation (23) in the Algorithm specification.

1.2 Distance from ball (high-low) in swing positions 1, 4 and 7 is described in the algorithm specification at Chapter 5.8. However, the unit is now degrees not inches or centimeters

1.3 Position (shallow-steep) in swing positions 2, 3, 5 and 6 is described in the algorithm specification in Chapter 5.8. However, the unit is now degrees not inch or centimeters

1.4 Left arm line (left or right) is described in specification Chapter 5.9 in the Algorithm specification. However the unit is now degrees not inch or centimeters

1.5 Width is described in specification Chapter 5.10 in the Algorithm specification. However the unit is now degrees not inch or centimeters

1.2, 1.3, 1.4 can also be calculated in inches or centimeters using values calculated by equation (23).

However, the advantage of using orientation instead of absolute location is that points can be compared between persons that have different physique. Like different height, arm lengths, etc.

The swing tempo and measured data are shown in Table 4, as follows: Tempo Measuring Unit Backswing Time Seconds Downswing Time Seconds Ratio of Upswing divided by Downswing Numerical backswing and value downswing Total time Backswing + pause at top + downswing Seconds Transition, i.e., Transition time from Backswing to Seconds pause at top Downswing Club head speed Club head speed during a swing. Mph or Displayed in sync with swing km/h animation. After the swing is complete a maximum value is displayed. The value indicates speed at point of impact. Maximum club Maximum club head speed during — head speed a swing. In order to help understanding tempo and generated power. Indicated using specific icon or distinctive segment. Swing length Percentage of ideal length. Ideal % length is default Top position or user defined Top position. Swing length Actual swing length. Measured Degree from perpendicular to Top position

Table 4, parameter calculations are as follows:

2.1 Backswing time is known if we can locate end of back swing from sensors data. This is described by equation (41) and specification Chapter 6.2.4.

2.2 Downswing time is known if we can locate ball strike from sensor data. This is described by equation (42) and in Chapter 5.2.7 in the Algorithm specification.

2.3 Total time is described by equation (42).

2.4 Backswing/Downswing ratio is self explanatory

2.5 Transition, i.e., pause at top is not described yet

2.6 Max club head speed is described by equation (40) and in Chapter 5.10.1 in the Algorithm specification.

2.7 Swing length is the value of equation 26 at the top position described in Chapter 6.2.4 in the Algorithm specification.

In FIG. 7D, the swing algorithm enables the tempo of a user's putting swing to be measured from the parameters listed below in Table 5. The total time 1.08 seconds, shown in FIG. 7D, is the sum of the backswing (0.86); pause (0.02) and downswing ((0.26). The ratio of backswing (0.86) to downswing (0.26) is 3.08 shown in FIG. 7D. The club head speed is shown as 113 mph within a series of segments describing swing length. The maximum club head speed is shown in the shaded segment. The percentage of ideal swing is 94% for a swing length of 172 degrees out of 180 degrees. TABLE 5 Putt and measured data Putt Measuring Unit Clubface at Orientation of hands (comparable to Degree Address clubface) Clubface at Orientation (comparable to clubface) Degree Backswing Clubface at Orientation (comparable to clubface) Degree Impact Speed Velocity of putter, displayed as curve: — actual speed vs. ideal speed Acceleration Acceleration at Impact Binary value, e.g. YES/NO or ON/OFF Proportion Backswing length/Follow through Inch or length, ideally it is ratio of 7:6 (follow Centimeter through/backswing) Pendulum Current putt is compared against Degree angle optimal angle on arc (e.g. 6° open and 6° closed), result is displayed using current value against pendulum.

In addition to comparing a user's swing to target performance, the analyzer facilitates a user practicing his/her swing using a learning process, as follows:

-   -   Step 1: The user informs the analyzer through the keyboard that         it wishes to practice his/her swing.     -   Step 2: The analyzer detects the start position of the swing         using the processes previously described in the swing algorithm         specification.     -   Step 3: The user informs the analyzer that he/she wishes to save         correct swing points.     -   Step 4: The user takes an initial swing position. When the         analyzer detects the initial swing position, an audio/vibration         feedback is provided to the user to indicate the initial         position has been detected.     -   Step 5 The user starts the swing and goes to the desired swing         position.     -   Step 6: If there are other swing positions “en route” and the         user goes through them the analyzer device gives feedback of         this to the user.     -   Step 7: The user stops the club movement at the desired swing         position point and waits for a mark from the analyzer.     -   Step 8: When the analyzer detects no club movement, it assumes         this is a correct point and gives the user a mark, either as a         sound or a vibration.     -   Step 9: When the user detects the mark he/she may check the         position and inform the analyzer if the user wants to save the         position.

The analyzer also facilitates teaching the user to improve his/her swing using a teaching process, as follows:

-   -   Step 1: The user informs the analyzer through the keyboard         device about his/her intention to practice swing and use the         analyzer device to help improve his/her swing.     -   Step 2: When the analyzer detects the start position it waits         for user movement.

Alternatively, the analyzer informs user that it is ready to analyze the club movement.

-   -   Step 3: When the swing is started, the analyzer detects the         movement and estimates the hand positions as described in the         Algorithm specification at Chapters 3-6.9.     -   Step 4: If the user goes through a correct swing point with         proper movement the analyzer takes note of the correct movement         and may give notice to the user by a sound or vibration.     -   Step 5: If user fails to go through the swing point with an         improper movement the analyzer will inform the user about this         mistake by, for example, a message on the display, or by a sound         or vibration.     -   Step 6: When the swing is completed, the analyzer saves the         swing data in the local or remote storage for future use.

In another embodiment, the analyzer may be re-programmed from new swing data provided by the user or from swing data stored in a database 170 (See FIG. 1) of the user or another player. This database can be on web server, webpage, user device, user computer or any such similar place where it can be reached and accessed, also the swing data can be modified or even made manually. A representative process for re-programming the analyzer 124 of FIG. 1 is as follows:

-   -   Step 1. A golfer, here a user, hits a perfect shot with optimal         swing;     -   Step 2. His motion sensor appliance saves all key motion data         from the performance;     -   Step 3. After the round, the shot is reviewed through the         display in the user interface 132 and the data is a) saved as a         target performance in the analyzer; or b) transferred to         external storage for later utilization;     -   Step 4. Later the user loses his good performances and cannot         find the perfect swing anymore;     -   Step 5. The user browses through the collection of his shots         stored in the analyzer or downloaded from the database;     -   Step 6. The user spots the shot that once was his best swing     -   Step 7. The user uploads the shot data and re-programs the         analyzer swing data according to the shot data;     -   Step 8. The analyzer retrains the performance to the user.

The individual best performance or other target performance is stored as raw motion sensor data or as an interpretation of that data, organized to be re-discoverable and usable form, stored for any period of time. After the desired performance is lost, the stored performance can be uploaded to the analyzer to be recreated in full detail, body positions, movements, timings, orientations, accelerations, all measured factors can be recreated with unequalled precision.

In re-creation of the stored target performances, the target values are utilized as training goals that are provided to the user through the user interface that can contain feedback methods for any senses, e.g. vibrations for sense of touch, sounds for hearing, lights or other visual elements etc.

FIG. 8 shows the analyzer as a trainer 100 in a process 600 for a user 602 to improve his/her tennis performance, as follows:

-   -   Step 1: The user is in a setup position. The analyzer is active.     -   Step 2: The racket is moving. The analyzer is active. The user         tries to find an optimal position to train.     -   Step 3: Step 2 is repeated.     -   Step 4: Step 2 is repeated.     -   Step 5: The user finds an optimal position (XY) to train and         stops hand movement. The analyzer detects the optimal position         and a timer is triggered.     -   Step 6: The racket/hand has been static for a defined number of         seconds. The analyzer via the sensors record the sensor         parameter.     -   Step 7: The user continues training. The analyzer is active.     -   Step 8: The user trains to find optimal previously recorded         position XY. When found the analyzer gives feedback to the user.

It will be apparent to persons skilled in the relevant art that various changes in form and detail can be made therein without departing from the spirit and scope of the invention. Accordingly, the breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents. 

1. A sport movement analyzer and training method for detecting, analyzing, correcting and re-creating sport movements of a user in real time, comprising: a) securing an analyzer to a user's forearm engaged in sport movements; b) providing signals representative of the movement of the forearm at various swing positions along a swing path during a sport movement via a sensing unit in the analyzer; c) processing the signals to measure various parameters descriptive of a sport performance of the user at the swing positions via a processor in the analyzer; and d) storing stored programs in the analyzer for servicing the processor in processing the signals representative of the sport performance and storing a history of past sport performances by the user for comparison purposes.
 2. The analyzer and training method of claim 1 further comprising: e) providing visual information to the user as provided by the processor.
 3. The analyzer and training method of claim 1 further comprising e) entering data into the processor via a data entry device seated in the first member and responsive to the user.
 4. The analyzer and training method of claim 1 further comprising g) providing audio signals as instructions to the analyzer and training device via an audio input device seated in the first member and responsive to the user.
 5. The analyzer and training method of claim 1 further comprising e) providing timing signals for measurement purposes via a timing generator within the package.
 6. The analyzer and training method of claim 1 further comprising: e) transmitting processed signals to a receiver and receiving information related to the signals from a transmitter via a transceiver within the package coupled to the processor.
 7. The analyzer and training method of claim 1 further comprising: e) providing sensory signals to the user via a transducer within the package and responsive to the processor.
 8. The analyzer and training method of claim 1 further comprising: e) processing audio signals generated by the user via a voice recognition unit within the package.
 9. The analyzer and training method of claim 1 wherein the parameters include, but are not limited to, acceleration, angular velocity, swing angle, tempo, timing and rotation.
 10. The analyzer and training method of claim 1 wherein the sensors include, but are not limited to, inertial, magnetic, optical, mechanical switches, potentiometers, angular rate, and angular acceleration.
 11. The analyzer and training method of claim 1 wherein the stored programs include a swing detection algorithm.
 12. The analyzer and training method of claim 1 wherein the transceiver is coupled to a server for receiving and storing data representative of sport performances by the user.
 13. The analyzer and training method of claim 1 wherein a database in a remote server collects and stores user performance data.
 14. The analyzer and training method of claim 1 wherein the transceiver communicates with a server via short range communication protocols.
 15. The analyzer and training method of claim 1 wherein the transceiver communicates with a server via cellular communication protocols.
 16. The analyzer and training method of claim 1 wherein the user downloads past sport performance data from a server for display purposes.
 17. The analyzer and training method of claim 1 wherein the user displays past performance data versus current performance data for comparison purposes.
 18. A sport movement analyzer and training device for detecting, analyzing, correcting and re-creating sport movements of a user in real time, comprising: a) an analyzer fabricated as a package for securing to a user's arm engaged in sport movements; b) a sensing unit in the analyzer providing signals representative of the movement of the forearm at various swing positions along a swing path during a sport movement; c) a processor in the analyzer processing the signals to measure various parameters descriptive of a sport performance of the user at the swing positions; and d) a storage means including stored programs in the analyzer servicing the processor in processing the signals representative of the sport performance and a history of past sport performances by the user for comparison purposes.
 19. The analyzer and training device of claim 18 further comprising: e) a display seated in the analyzer providing visual information to the user.
 20. The analyzer and training device of claim 18 further comprising: e) a data entry device responsive to the user for entering data into the processor.
 21. The analyzer and training device of claim 18 further comprising: e) an audio input device responsive to the user for providing audio signals as instructions to the analyzer and training device.
 22. The analyzer and training device of claim 18 further comprising: e) a timing generator in the analyzer providing timing signals for measurement purposes.
 23. The analyzer and training device of claim 18 further comprising: e) a transceiver in the analyzer coupled to the processor for transmitting processed signals to a receiver and receiving information related to the signals from a transmitter.
 24. The analyzer and training device of claim 18 further comprising: e) a transducer in the analyzer responsive to the processor for providing sensory signals to the user.
 25. The analyzer and training device of claim 18 further comprising: e) a voice recognition unit in the analyzer processing audio signals generated by the user.
 26. The analyzer and training device of claim 18 wherein the parameters include, but are not limited to, acceleration, angular velocity, swing angle, tempo, timing and rotation.
 27. The analyzer and training device of claim 18 wherein the sensors include, but are not limited to, inertial, magnetic, optical, mechanical switches, potentiometers, angular rate, and angular acceleration.
 28. The analyzer and training apparatus of claim 18 wherein the stored programs include a swing detection algorithm.
 29. The analyzer and training device of claim 18 wherein the transceiver is coupled to a server for receiving and storing data representative of sport performances by the user.
 30. The analyzer and training device of claim 29 wherein the server is coupled to a storage device including a database for storing user performance data.
 31. The analyzer and training device of claim 18 wherein the transceiver communicates with a server via short range communication protocols.
 32. The analyzer and training device of claim 18 wherein the transceiver communicates with a server via cellular communication protocols.
 33. The analyzer and training device of claim 18 wherein the user downloads past sport performance data from a server for display purposes.
 34. The analyzer and training device of claim 18 wherein the user displays past performance data versus current performance data for comparison purposes.
 35. A system for detecting, analyzing, correcting and re-creating sport movements of a user in real time, comprising: a) an analyzer for detecting sport movements in terms of various parameters and separating the movements into parts wherein each part is a swing position included in a sport movement; b) a transceiver in each sensor for transmitting signals representative of the detected sport movement by each part; c) a server coupled to and receiving the signals; and d) a memory coupled to the server for storing the signals representative of the movement by each part.
 36. The system of claim 35 further comprising a memory in the analyzer includes (i) stored programs for analyzing the sport movement by part in terms of the various parameters and (ii) a history of past sport movements by part of the user.
 37. The system of claim 35 further comprising: e) a display in the analyzer responsive to an analysis for displaying the sport movement by part in real time.
 38. The system of claim 35 further comprising: e) a timing generator providing timing signals for alignment with parts of the movement.
 39. The system of claim 35 further comprising: e) automatic recording means for recording signals representative of a parameter in an event in the sport movement.
 40. The system of claim 35 further comprising: e) a voice recognition system included in the sensor and responsive to an audio signal for activating the automatic recording means.
 41. The system of claim 36 further comprising: f) a user interface for downloading and displaying past sport movements from the history as a training goal for the user.
 42. The system of claim 35 further comprising: e) sensory signals provided via an interface to the user as feedback for recreating the downloaded past sporting movement.
 43. The system of claim 35 wherein a display displays a comparison between the movement and like movements stored in the history.
 44. The system of claim 35 wherein the parameters include, but are not limited to, acceleration, angular velocity, swing angle, tempo, timing and rotation.
 45. The system of claim 35 wherein the sensors include, but are not limited to, inertial, magnetic, optical, mechanical switches, potentiometers, angular rate, and angular acceleration.
 46. The system of claim 36 wherein the stored programs include a swing detection algorithm.
 47. The system of claim 1 wherein the analyzer is wearable by the user.
 48. A method for detecting, analyzing, correcting and re-creating sport movements of a user in real time, comprising: a) detecting sport movements via an analyzer in terms of various parameters and separating the movements into parts wherein each part is a swing position included in a sport movement; b) transmitting signals representative of the detected sport movement by each part via a transceiver; c) receiving in a server the signals transmitted by the transceiver; d) coupling a memory to the server and storing the signals representative of the movement by each part; e) The memory including (i) stored programs for analyzing the movement in terms of the various parameters and (ii) a history of past sport movements by part of the user; and f) displaying in real time the sport movement by part in a display responsive to an analysis.
 49. The method of claim 48 further comprising: g) providing timing signals via a timing generator for alignment with parts of the movement.
 50. The method of claim 48 further comprising: g) recording via automatic recording means signals representative of a parameter in an event in the sport movement.
 51. The method of claim 48 further comprising: g) activating the automatic recording means via a voice recognition system included in the analyzer and responsive to an audio signal.
 52. The method of claim 48 further comprising: g) downloading and displaying past sport movements via a user interface from the history as a training goal for the user.
 53. The method of claim 48 further comprising: g) providing sensory signals via the interface to the user as feedback for recreating the downloaded past sporting movement.
 54. The method of claim 48 wherein a comparison between the movement and like movements stored in the history is displayed by the analyzer.
 55. The method of claim 48 wherein the parameters include, but are not limited to, acceleration, angular velocity, swing angle, tempo, timing and rotation.
 56. The method of claim 48 wherein the sensors include, but are not limited to, inertial, magnetic, optical, mechanical switches, potentiometers, angular rate, angular acceleration.
 57. The method of claim 48 wherein the stored programs include a swing detection algorithm.
 58. The method of claim 48 wherein the analyzer is wearable by the user.
 59. A training device for improving the performance of a sport movement by a user comprising: a) an analyzer secured to a user's forearm engaged in sport movements; b) a sensing unit within the analyzer providing signals representative of the movement of the forearm at various swing positions along a swing path during a sport movement; c) a processor within the package processing the signals to measure various parameters descriptive of a sport performance of the user at swing positions; and d) a storage means including stored programs within the package servicing the processor in processing the signals representative of the sport performance and including a history of past sport performances by the user for comparison purposes with the sport performance.
 60. The teaching device of claim 49 wherein the wrist movement of the user is measured.
 61. The teaching device of claim 48 wherein the rotation of the forearm is measured in a swing movement.
 62. A method of learning a swing movement comprising: a) securing an analyzer to a forearm arm of a user; b) taking an initial swing position by the user; c) detecting the position by the analyzer and providing a feedback signal to the user; d) initiating a swing by the user to a stop position; e) providing a mark signal to the user at the stop position by the analyzer; f) detecting the absence of movement by the analyzer and providing mark as sound or vibration; and g) saving the position in the analyzer for comparison with future swing movement.
 63. A method of teaching a swing movement comprising: a) securing an analyzer to a forearm of a user; b) providing a command to the analyzer that the user intends to practice his/her swing movement; c) configuring the analyzer to: (i) detect the start position of the user; (ii) detect the swing movement and estimate hand positions of the user at swing positions along a swing path; (iii) notifying the user when the swing movement passes through a swing position with proper movement or improper movement; and (iv) collecting and storing swing data for future use.
 64. A method of re-programming an analyzer for improved user swing performance, comprising: a) storing all key motion data from a swing performance of a user in a programmable analyzer or an external database; b) reviewing stored motion data for improved swing performance; c) selecting the stored motion data for improved swing performance; and d) re-programming the analyzer with the selected motion data for improved swing performance of the user.
 65. The method of claim 64 further comprising: e) retraining the user for improved swing performance using the re-programmed analyzer.
 66. A medium, executable in a computer system, for detecting, analyzing, correcting and re-creating sport movements of a user in real time using an analyzer secured to a user's forearm engaged in sport movements, the medium comprising, b) program code for providing signals representative of the movement of the forearm at various swing positions along a swing path during a sport movement via a sensing unit in the analyzer; c) program code for processing the signals to measure various parameters descriptive of a sport performance of the user at the swing positions via a processor in the analyzer; and d) program code for storing and executing stored programs in the analyzer for servicing the processor in processing the signals representative of the sport performance and storing a history of past sport performances by the user for comparison purposes. 